package 剑指offer;


/*
 * Author：江松
 * Date：2023/3/16 20:53
 *
 *
 1+2+3+...+n
 求1+2+3+...+n，要求不能使用乘除法、for、while、
 if、else、switch、case等关键字及条件判断语句（A?B:C）



 计算num1+num2值，不能用加号
 */

public class Main32 {

    //递归   替代循环
    // 条件运算短路与  替代了条件运算
    public int Sum_Solution(int n) {
        boolean flag=(n>1)&&((n+=Sum_Solution(n-1))>0);
        return n;
    }

    //异或保留加之后本位的情况，与运算保存了当前位的进位
    public int Add(int num1,int num2) {
        int carry=num1,sum=num2;

        while(carry!=0){
            //当前值加上次进位,不含进位的值
            int t=sum^carry;
            //下次进位
            carry=(sum&carry)<<1;
            sum=t;
        }
        return sum;
    }
    public static void main(String[] args) {

    }
}
